﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Net;
using System.Security.Cryptography;
using System.Text;

public class AdminPage: Page
{
    protected QuanLyHocSinhDatabaseDataContext db = new QuanLyHocSinhDatabaseDataContext();
    protected String Passphrase = "chaiko9.0";

	public void Page_PreInit(object sender, EventArgs e)
    {
        if (!Request.Url.AbsoluteUri.ToLower().Contains("login.aspx"))
        {
            if (IsAuthenticated == false) // chua dang nhap
            {
                // luu dia chi trang hien tai de quay lai sau khi login thanh cong
                Session["ReturnUrl"] = Request.Url.AbsoluteUri;

                // chuyen sang trang dang nhap
                Response.Redirect("login.aspx");
            }
            //else if ((Session["GiaoVien"] as GiaoVien).MaGiaoVien != "admin" && (this.Permissions == null || Permissions.AccessAllow == false))
            // dang nhap roi nhung khong co quyen truy xuat
            //{
            //    Response.Redirect("deny.aspx");
            //}
        }
        
    }

    public GiaoVien Employee
    {
        get
        {
            return Session["GiaoVien"] as GiaoVien;
        }
        set
        {
            if (value == null)
            {
                Session.Remove("GiaoVien");
            }
            else
            {
                Session["GiaoVien"] = value;
            }
        }
    }

    public bool IsAuthenticated // cho biet dang nhap hay chua
    {
        get
        {
            return (Employee != null);
        }
    }

    //public Permission Permissions
    //{
    //    get
    //    {
    //        // vi tri xuat hien cuoi cung cua '/'
    //        int lastIndex = Request.Url.AbsolutePath.LastIndexOf('/');
    //        // lay ten trang web hien tai
    //        String WebPageName = Request.Url.AbsolutePath.Substring(lastIndex + 1).ToLower();

    //        try
    //        {
    //            // lay quyen cua nhan vien da dang nhap tren trang web hien tai
    //            Permission permission = db.Permissions.Single(q => q.WebPage.WebPageName.ToLower() == WebPageName && q.RoloId == Employee.RoleId);
    //            return permission;
    //        }
    //        catch
    //        {
    //            // tim khong thay (chua cap quyen cho trang nay)
    //            return null;
    //        }
    //    }
    //}

    

    /*********************************************************************************************************************
     *  Đây là phần định nghĩa các phương thức, hàm sẽ dùng chung trong các trang được kế thừa từ lớp này
     *  Author: Lam Phuong Thuy Dung
     *  Handphone
     *********************************************************************************************************************/

    //Phương thức kiểm tra trạng thái của một record và cho hiện thị trạng thái bằng hình ảnh
    protected string HienThiTrangThaiBangHinhAnh(object TrangThai)
    {
        if (TrangThai != null)
        {
            if ((bool)TrangThai)
                return "images/active.png";
            else
                return "images/inactive.png";
        }
        else
            return "images/inactive.png";
    }

    //Phương thức kiểm tra hình đại diện và hiển thị lên ListView
    protected String KiemTraHinhDaiDien(object Avatar)
    {
        if (Avatar == null)
            return "stores/avatar/no-avatar.png";
        else
            return "stores/avatar/" + Avatar.ToString();
    }

    public static string TheSessionId()
    {
        return HttpContext.Current.Session.SessionID;
    }

    public string GetWorkstationName()
    {
        string workstationName = Dns.GetHostEntry(Request.ServerVariables["remote_addr"]).HostName;
        return workstationName;
    }

    public string GetWorkstationBrowser()
    {
        System.Web.HttpBrowserCapabilities browser = Request.Browser;
        return browser.Browser + " version " + browser.Version;
    }
}